@api @chat-api Feature: NPC Chat API Validates chat endpoints and conversation flow Background: Given the API is accessible And I am authenticated as "gandalf" Scenario: Chat start returns opener and suggested action When I start a chat with character "gandalf" Then the response status should be 200 And the response body should have property "character" And the response body should have property "opener" And the response body should have property "suggested_action" Scenario: NPC opener returns a non-empty message When I start a chat with character "sam" Then the response status should be 200 And the opener should not be empty Scenario: Chat message endpoint returns NPC reply Given I have started a chat with character "gandalf" When I send a chat message "What should I do next?" to character "gandalf" Then the response status should be 200 And the chat reply should not be empty Scenario: Chat session can be retrieved Given I have started a chat with character "gandalf" When I GET the chat session for character "gandalf" Then the response status should be 200 And the response body should have property "character" And the response body should have property "messages" And the response body messages should be an array Scenario: Conversation can be reset Given I have started a chat with character "gandalf" When I reset the chat session for character "gandalf" Then the response status should be less than 300 Scenario: Frodo persona is reflective When I start a chat with character "frodo" Then the response status should be 200 And the chat response character should be "frodo" And the opener should not be empty Scenario: Sam persona is accessible When I start a chat with character "sam" Then the response status should be 200 And the chat response character should be "sam" And the opener should not be empty