package pact import ( "io/fs" "git.golem15.com/golem15/summercms/bonfire" ) // HasCommands is implemented by plugins that register console commands. type HasCommands interface { Commands() []bonfire.Command } // HasConfig is implemented by plugins that ship default YAML configuration. // ConfigFS should contain files such as config/config.yaml, merged later at // the plugin ID path. type HasConfig interface { ConfigFS() fs.FS } // OptionalMessage is a service an optional plugin may publish so other // plugins can integrate without importing that plugin's package. type OptionalMessage interface { Message() string } // Future KERN-03 capability families are type-asserted when their first // consumer packages exist. Method payloads are not declared here so pact // does not import surf, lagoon, festival, or other packages that Phase 1 // does not yet ship: // // HasModels // HasMigrations // HasRoutes // HasMiddleware // HasJobs // HasListeners // HasAdminControllers // HasNavigation // HasPermissions // HasSchedule // HasMailTemplates // HasLang // // Phase 1 type-asserts only HasConfig (party, before Register) and // HasCommands (generated app main, after Boot).