BS-JD-401 - Static extension API v0 #27

Open
opened 2026-06-06 01:48:35 -04:00 by Rbanh · 0 comments
Owner

Summary

Formalize a stable, statically linked extension API before attempting dynamic loading.

Why

Blacksite already has editor plugin hooks; a deliberate static API gives future-game extensions a stable path without dylib complexity.

Implementation notes

  • Define v0 extension traits/capabilities for panels, commands, component metadata, inspectors, and tools.
  • Document ownership boundaries and non-goals.
  • Convert existing game/editor extension hooks to dogfood the API.
  • Keep API semver or migration notes explicit.

Acceptance criteria

  • External game/editor crates can register panels, commands, and inspector sections through one API.
  • Existing hooks are migrated or clearly bridged.
  • API docs include examples and constraints.
  • Dynamic loading remains out of scope for v0.

Tests/docs

Compile-time example crate or fixture. Update ADR/docs/editor architecture.

## Summary Formalize a stable, statically linked extension API before attempting dynamic loading. ## Why Blacksite already has editor plugin hooks; a deliberate static API gives future-game extensions a stable path without dylib complexity. ## Implementation notes - Define v0 extension traits/capabilities for panels, commands, component metadata, inspectors, and tools. - Document ownership boundaries and non-goals. - Convert existing game/editor extension hooks to dogfood the API. - Keep API semver or migration notes explicit. ## Acceptance criteria - [ ] External game/editor crates can register panels, commands, and inspector sections through one API. - [ ] Existing hooks are migrated or clearly bridged. - [ ] API docs include examples and constraints. - [ ] Dynamic loading remains out of scope for v0. ## Tests/docs Compile-time example crate or fixture. Update ADR/docs/editor architecture.
Rbanh added this to the M4 - Extensibility and runtime integration milestone 2026-06-06 01:48:35 -04:00
Rbanh added the
roadmap:jackdaw
type:architecture
priority:P1
area:extensions
labels 2026-06-06 01:48:35 -04:00
Sign in to join this conversation.
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: Falling-Metal-Interactive/Blacksite#27
No description provided.