extends Node ## Top-level mutable game state. SaveSystem serializes via save_dict() / apply_dict(). ## ## Holds session-wide flags and the "what map are we on" pointer. Per-entity state ## lives on the entities themselves; per-tile state on the TileMap or World. ## See docs/architecture.md. var current_map_id: StringName = &"slice_temperate_forest" var session_started_at_unix: int = 0 # for "you've been away X minutes" toast func _ready() -> void: session_started_at_unix = int(Time.get_unix_time_from_system()) # Phase 16 expands these into real save round-trip. func save_dict() -> Dictionary: return { "current_map_id": String(current_map_id), "session_started_at_unix": session_started_at_unix, } func apply_dict(d: Dictionary) -> void: if d.has("current_map_id"): current_map_id = StringName(d["current_map_id"]) if d.has("session_started_at_unix"): session_started_at_unix = int(d["session_started_at_unix"])