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
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MackySoft.Ucli.Contracts" Version="0.9.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="MackySoft.Ucli.Contracts" Version="0.9.0" />
                    
Directory.Packages.props
<PackageReference Include="MackySoft.Ucli.Contracts" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add MackySoft.Ucli.Contracts --version 0.9.0
                    
#r "nuget: MackySoft.Ucli.Contracts, 0.9.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package MackySoft.Ucli.Contracts@0.9.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=MackySoft.Ucli.Contracts&version=0.9.0
                    
Install as a Cake Addin
#tool nuget:?package=MackySoft.Ucli.Contracts&version=0.9.0
                    
Install as a Cake Tool

MackySoft.Ucli.Contracts

NuGet License: MIT

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.
  • UcliNoResult for operations that intentionally omit opResults[].result.
  • Protocol constants and shared protocol metadata.
  • Configuration and storage contract models.
  • ArtifactRef for finalized immutable byte sequences and ExecutionRef for long-lived logical executions.
  • JSON serialization helpers for uCLI contract types.
  • uCLI vocabulary declarations backed by MackySoft.Text.Vocabularies and 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.

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.

If uCLI or other MackySoft projects are useful to you, please support MackySoft through GitHub Sponsors:

https://github.com/sponsors/mackysoft

Author

License

This package is under the MIT License.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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