MackySoft.Ucli.Contracts
0.9.0
dotnet add package MackySoft.Ucli.Contracts --version 0.9.0
NuGet\Install-Package MackySoft.Ucli.Contracts -Version 0.9.0
<PackageReference Include="MackySoft.Ucli.Contracts" Version="0.9.0" />
<PackageVersion Include="MackySoft.Ucli.Contracts" Version="0.9.0" />
<PackageReference Include="MackySoft.Ucli.Contracts" />
paket add MackySoft.Ucli.Contracts --version 0.9.0
#r "nuget: MackySoft.Ucli.Contracts, 0.9.0"
#:package MackySoft.Ucli.Contracts@0.9.0
#addin nuget:?package=MackySoft.Ucli.Contracts&version=0.9.0
#tool nuget:?package=MackySoft.Ucli.Contracts&version=0.9.0
MackySoft.Ucli.Contracts
Created by Hiroya Aramaki (Makihiro)
MackySoft.Ucli.Contracts contains the shared IPC protocol and data contract types used by uCLI runtime components.
This is an advanced integration package for uCLI runtime, Unity plugin integration, and tooling that needs to exchange uCLI protocol messages directly. Users who only run the ucli command or install MackySoft.Ucli.Unity usually do not need to reference this package directly.
Installation
Install a pinned version from nuget.org:
dotnet add package MackySoft.Ucli.Contracts --version <version>
What This Package Provides
- IPC request and response contracts.
- Typed primitive operation Args/Result contract types.
- Consumer-owned annotations for uCLI-specific operation-input meaning.
UcliNoResultfor operations that intentionally omitopResults[].result.- Protocol constants and shared protocol metadata.
- Configuration and storage contract models.
ArtifactReffor finalized immutable byte sequences andExecutionReffor long-lived logical executions.- JSON serialization helpers for uCLI contract types.
- uCLI vocabulary declarations backed by
MackySoft.Text.Vocabulariesand its JSON adapter. - Shared data shapes used by the CLI, Unity plugin, and infrastructure package.
Artifact and Execution References
ArtifactRef identifies one finalized byte sequence by its product kind, media type, SHA-256 digest, byte count, UTC publication time, and a closed location variant. PathArtifactRef carries a repository-relative path, UriArtifactRef carries an absolute artifact URI, and PathAndUriArtifactRef carries both locators for the same bytes. Their shared locationKind discriminator is derived from the ArtifactLocationKind text vocabulary.
ExecutionRef identifies one long-lived logical execution by (kind, id) and the immutable definition digest fixed at registration. Its tagged lifecycle variants keep terminal-record references out of active and recovery JSON, and require a finalized ArtifactRef in terminal JSON. Feature code owns its state vocabulary, state transitions, and the deterministic mapping from feature state to the common lifecycle.
Lifecycle actions use the same ExecutionRef through endpoint re-registration. Each action owns its typed state machine and result while the shared Lifecycle Execution contract fixes the start identity and the immutable terminal-record shape. Provider-specific status values remain inside the action handler.
Use IpcJsonSerializerOptions when exchanging these contracts across the CLI and Unity boundary. Their generated Draft 2020-12 schemas are delivered as common.artifact-ref, common.execution-ref, and common.lifecycle-execution-terminal-record.
Operation Contracts
Primitive operation contracts are authored as CLR Args/Result types plus operation metadata. Args/Result types and the effective System.Text.Json contract define the public JSON structure. Reusable operation values such as scene asset paths, prefab asset paths, hierarchy paths, GlobalObjectId strings, asset GUIDs, and Unity type identifiers use semantic CLR value types even when they serialize as JSON strings. Finite string values use MackySoft.Text.Vocabularies types and the runtime vocabulary converter. Closed selector alternatives use the IPC serializer's polymorphic JsonTypeInfo configuration.
Descriptions and string or collection bounds use the common MackySoft.JsonSchema.Generation.Annotations attributes. Requiredness, nullability, arbitrary JSON values, finite vocabularies, and polymorphic alternatives come from the actual CLR and serializer contract rather than duplicate schema annotations. uCLI-specific Unity meaning uses one concrete annotation per constraint, with typed vocabulary arguments where a finite value is required.
Public raw op args must not use request-local alias references. The Unity runtime accepts that reference variant only while compiling higher-level request steps.
Operation schema and describe metadata are projections of the same provider generation result. uCLI does not rebuild a separate input table from reflection attributes.
Selectors are also contract types, such as GameObjectReferenceArgs, ComponentReferenceArgs, and AssetReferenceArgs. Operation authors consume those typed references and keep resolved Unity objects inside the Unity implementation layer.
JSON remains the IPC wire format. Operation implementations and command builders should use the typed contract model before crossing the IPC boundary, and should avoid treating raw JsonElement as the authoring surface.
Related Packages
| Package | Role |
|---|---|
MackySoft.Ucli |
.NET global tool that provides the ucli command. |
MackySoft.Ucli.Unity |
Unity Editor plugin for uCLI IPC and automation. |
MackySoft.Ucli.Infrastructure |
Shared infrastructure services that use the contract model. |
MackySoft.Text.Vocabularies |
Product-independent finite typed text vocabulary definitions and resolution. |
MackySoft.Text.Vocabularies.Json |
System.Text.Json string and property-name adapters for those vocabularies. |
Repository
Source and issue tracking:
https://github.com/mackysoft/ucli
Support
Use GitHub Issues for bugs, questions, and package problems:
https://github.com/mackysoft/ucli/issues
Include the package name and version when reporting package-specific problems.
Sponsor
If uCLI or other MackySoft projects are useful to you, please support MackySoft through GitHub Sponsors:
https://github.com/sponsors/mackysoft
Author
- Website: https://mackysoft.net/
- GitHub: https://github.com/mackysoft
- Sponsors: https://github.com/sponsors/mackysoft
License
This package is under the MIT License.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- MackySoft.Json.Canonicalization (= 0.1.0)
- MackySoft.JsonSchema.Generation (= 0.3.1)
- MackySoft.Text.Vocabularies (= 0.1.0)
- MackySoft.Text.Vocabularies.Json (= 0.1.0)
- System.Text.Json (>= 8.0.5)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on MackySoft.Ucli.Contracts:
| Package | Downloads |
|---|---|
|
MackySoft.Ucli.Infrastructure
Shared infrastructure services for uCLI runtime components. |
|
|
MackySoft.Ucli.Unity
Unity Editor plugin for uCLI IPC and automation. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.9.0 | 192 | 8/3/2026 |
| 0.8.3 | 356 | 7/26/2026 |
| 0.8.2 | 202 | 7/23/2026 |
| 0.8.1 | 198 | 7/17/2026 |
| 0.8.0 | 190 | 7/16/2026 |
| 0.7.2 | 204 | 7/9/2026 |
| 0.7.1 | 194 | 7/9/2026 |
| 0.7.0 | 205 | 7/8/2026 |
| 0.6.0 | 215 | 6/23/2026 |
| 0.5.0 | 206 | 6/23/2026 |
| 0.4.0 | 203 | 6/23/2026 |
| 0.3.0 | 201 | 6/22/2026 |
| 0.2.1 | 198 | 6/14/2026 |
| 0.2.0 | 213 | 6/14/2026 |
| 0.1.0 | 210 | 6/4/2026 |