SCP: Secret Laboratory LabAPI plugin generated from the `labapi-plugin` template. ## Project Overview * The plugin targets `netstandard2.1` intentionally. * LabAPI runs on the game's .NET Framework 4.8 environment, but the Unity version used by SCP: Secret Laboratory supports loading plugins targeting `netstandard2.1`. * The official LabAPI repository is [LabApi GitHub](https://github.com/northwood-studios/LabAPI). Use it to verify LabAPI APIs, behavior, and implementation details instead of guessing. ## Rules * Do not change `TargetFramework`. * Do not add multi-targeting. * Do not change `LangVersion`. * Do not remove or broaden the existing warning handling. * Do not replace the floating `Northwood.LabAPI` version with a pinned version unless explicitly requested. * Do not automatically synchronize `RequiredApiVersion` with the NuGet package version. * Do not add comments unless explicitly requested. * Do not invent LabAPI APIs, namespaces, classes, methods, properties, events, or attributes. * Do not hand-roll configuration serialization or file I/O. * Do not make unrelated changes to project configuration. * Do not scan or read the repository broadly at the start of a task. * Only inspect files relevant to the current request. * Prefer targeted searches over broad repository exploration. ## Documentation * The `docs` directory contains project documentation and must be consulted before starting any task. * Use the relevant documentation in `docs` to understand the project's architecture, conventions, design decisions, and non-obvious behavior before making changes. * Do not create documentation that merely restates what the code already makes obvious. * Document architecture, non-obvious behavior, important design decisions, and conventions that cannot be understood easily from the code alone. * Keep documentation concise and focused on useful context. * Update the relevant documentation when a change affects documented behavior, architecture, conventions, or design decisions. * Keep documentation consistent with the current state of the code. * Do not create unnecessary documentation files. ## LabAPI API Guidelines `Plugin` requires the following members: * `Name` * `Description` * `Author` * `RequiredApiVersion` * `Enable()` * `Disable()` Optional overridable members include: * `Version` * `Priority` * `ConfigFileName` `Config` is automatically serialized and deserialized by LabAPI using YamlDotNet. Before using a LabAPI API that is not already present in the project, verify that it exists and confirm its signature using one of these sources: 1. The restored `LabApi.dll` and `LabApi.xml` from the NuGet package. 2. The official LabAPI source: https://github.com/northwood-studios/LabAPI. Never guess an API. If an API or member cannot be verified, say so. ## Code Style * Keep code simple and direct. * Prefer existing project patterns over introducing new abstractions. * Do not add unnecessary wrappers, helpers, interfaces, or dependencies. * All text embedded in code must be in English. * Identifiers do not need to be in English when a specific name has been requested. * Avoid comments unless explicitly requested. ## Project Configuration The following settings are intentional and must not be changed unless explicitly requested: * `TargetFramework` * `LangVersion` * `Northwood.LabAPI` version * `NU1701` warning handling * `MSB3270` warning handling `RequiredApiVersion` is a manually maintained minimum compatible LabAPI version. Update it only after compatibility with a newer LabAPI version has been verified. ## Verification After making changes, run: ```bash dotnet build ``` The expected result is: `Build succeeded. 0 Warning(s) 0 Error(s).`