What Changed
Added scene-owned occupancy data:Scenes.FloorPlanID
Scenes.InitialFloorPlanFloorID
new SceneFloorPlanOccupancy table
Added Occupancy section to the Scene Inspector with AJAX save/refresh.
Added Floor Plan editor Structure / Occupancy mode.
Occupancy mode shows linked scenes, previous/next scene controls, and character/asset tokens inside assigned locations.
Character tokens use image thumbnail, then initials fallback. Asset tokens do the same, smaller.
No Features, no new floor-plan architecture, no transition changes.
Files Changed
[CoreModels.cs](C:/Source/PlotLine/PlotLine/Models/CoreModels.cs)
[CoreViewModels.cs](C:/Source/PlotLine/PlotLine/ViewModels/CoreViewModels.cs)
[Repositories.cs](C:/Source/PlotLine/PlotLine/Data/Repositories.cs)
[CoreServices.cs](C:/Source/PlotLine/PlotLine/Services/CoreServices.cs)
[ScenesController.cs](C:/Source/PlotLine/PlotLine/Controllers/ScenesController.cs)
[Program.cs](C:/Source/PlotLine/PlotLine/Program.cs)
[Edit.cshtml](C:/Source/PlotLine/PlotLine/Views/FloorPlans/Edit.cshtml)
[_SceneInspector.cshtml](C:/Source/PlotLine/PlotLine/Views/Scenes/_SceneInspector.cshtml)
[_SceneOccupancy.cshtml](C:/Source/PlotLine/PlotLine/Views/Scenes/_SceneOccupancy.cshtml)
[site.js](C:/Source/PlotLine/PlotLine/wwwroot/js/site.js)
[site.css](C:/Source/PlotLine/PlotLine/wwwroot/css/site.css)
minified CSS/JS updated.
Database
Added new migration only: [080_SceneFloorPlanOccupancy.sql](C:/Source/PlotLine/PlotLine/Sql/080_SceneFloorPlanOccupancy.sql)
Applied locally.
Added constraints/FKs and filtered unique indexes for one character/asset occupancy row per scene.
Stored Procedures Added/Updated
Scene_Save
Scene_Get
Scene_FloorPlanLink_Save
Scene_ListByFloorPlan
FloorPlanFloor_ListByPlan
FloorPlanBlock_ListByPlan
SceneFloorPlanOccupancy_ListByScene
SceneFloorPlanOccupancy_ListByFloorPlan
SceneFloorPlanOccupancy_Save
Test Data
Permanent Calendar House seed data added:
Book: The Calendar House
Chapters 1-3
14 scenes
Characters: Ellie, Grant, Stephen, Housekeeper, Gardener
Assets: Brass Key, Journal, Candle, Map, Letter
45 occupancy assignments
Verification
dotnet build PlotLine.slnx passes with 0 warnings/errors.
Migration applied locally.
Local app boots and returns HTTP 200.
DB checks confirm 14 linked scenes and 45 occupancy rows.
Manual browser click-through of the authenticated UI still needs a human pass for the AJAX controls and visual token placement.
Changed:
[Edit.cshtml (line 29)](C:/Source/PlotLine/PlotLine/Views/FloorPlans/Edit.cshtml:29): added Sliding Door, French Door, and Ladder marker mappings/SVGs.
[Edit.cshtml (line 1729)](C:/Source/PlotLine/PlotLine/Views/FloorPlans/Edit.cshtml:1729): Ladder To Location filtering now lists placed locations on floors above, sorted by level/floor/name with clean labels like First Floor > East Hallway 1st.
[Edit.cshtml (line 2072)](C:/Source/PlotLine/PlotLine/Views/FloorPlans/Edit.cshtml:2072): Ladder renders inside the From Location using the existing position system.
[CoreServices.cs (line 7966)](C:/Source/PlotLine/PlotLine/Services/CoreServices.cs:7966): server validation now treats Ladder as a vertical upward transition, without stairs reciprocity.
[CoreModels.cs (line 1243)](C:/Source/PlotLine/PlotLine/Models/CoreModels.cs:1243): normalisation accepts Ladders.
[site.css (line 4902)](C:/Source/PlotLine/PlotLine/wwwroot/css/site.css:4902) and minified CSS: added light/dark styling for the new marker types.
No database changes. No new tables. No Features, architecture, AJAX, or secret/hidden room logic changes.
Changed:
[Edit.cshtml (line 36)](C:/Source/PlotLine/PlotLine/Views/FloorPlans/Edit.cshtml:36)Secret Passage and Hidden Passage now render as dashed route overlays instead of wall markers.
Hidden Door remains a wall/shared-edge marker and follows existing adjacency rules.
Hidden locations are detected from existing transition data: visible entrances count, windows/hidden doors/secret passages/hidden passages/blocked doors do not.
Hidden room tooltip now includes Hidden location: no visible entrance.
[site.css (line 4793)](C:/Source/PlotLine/PlotLine/wwwroot/css/site.css:4793)Added subtle hidden-location hatch styling.
Added dashed secret-route styling with dark-theme support.
[site.min.css](C:/Source/PlotLine/PlotLine/wwwroot/css/site.min.css)Synced minified CSS.
No database changes. No stored procedure changes. No Features concept added.