Writing a node

A node is just a function you can unit-test

Because every node is state -> partial state, you can call one directly with a fake state dict and assert on what it returns โ€” no server, no LLM, no database. That's the whole point of the graph shape.

Time to add real capability. Right now the heuristic parser in intent.py pulls out neighborhood, duration, and start time โ€” but not the dog's name. This is staged exercise 1 from docs/learning/backend.md: teach the parser to extract dog_name.