API Reference Overview
This section provides comprehensive documentation for all Mod-Engine APIs, types, and functions.
Core API
Configuration
defineConfig()
- Define system configurationcreateEngine()
- Create engine instancevalidateConfig()
- Validate configuration
Engine
engine.builder()
- Create item builderengine.evaluate()
- Evaluate itemcreateConditionBuilder()
- Create condition builder
Builder
.set()
- Set item attributes.increase()
- Add increase modifier.multiply()
- Add multiply modifier.when()
- Add condition.with()
- Set modifier options.build()
- Build item specification
Type System
Core Types
ConfigSpec
- Configuration specificationItemSpec
- Item specificationEvaluationResult
- Evaluation output
Modifier Types
Attribute Types
AttributeSchema
- Attribute definitionEnumAttributeSchema
- Enum attributeNumberAttributeSchema
- Number attributeBooleanAttributeSchema
- Boolean attribute
Operations
Built-in Operations
Custom Operations
OperationImpl
- Operation implementation typeengine.registerOperation()
- Register a custom operation implementation
Validation
Validation Functions
validateItem()
- Validate item specificationvalidateCondition()
- Validate conditionvalidateOperations()
- Validate operations
Error Types
ValidationError
- Validation failureSchemaError
- Schema validation errorConditionError
- Condition validation error
Serialization
Serialization Functions
serializeItem()
- Serialize item to JSONdeserializeItem()
- Deserialize item from JSONtoSnapshot()
- Create evaluation snapshot
Quick Reference
Common Patterns
Basic Configuration
import { defineConfig, createEngine } from "mod-engine";
const config = defineConfig({
metrics: ["Health", "Damage"] as const,
operations: ["sum", "multiply"] as const,
attributes: [
/* ... */
] as const,
});
const engine = createEngine(config);
Building Items
const item = engine
.builder("Item Name")
.set("attribute", value)
.increase("metric")
.by(amount)
.when(condition)
.build();
Evaluation
const result = engine.evaluate(item);
console.log(result.metrics);
console.log(result.appliedModifiers);
Type Utilities
Inference Types
MetricOf<TConfig>
- Extract metric types from configAttrKeyOf<TConfig>
- Extract attribute keys from configAttrValueOf<TConfig, TKey>
- Extract attribute value typeOperationOf<TConfig>
- Extract operation types from config
Example Usage
type Config = typeof myConfig;
type Metrics = MetricOf<Config>; // "Health" | "Damage"
type Operations = OperationOf<Config>; // "sum" | "multiply"
Error Handling
All Mod-Engine functions throw typed errors that you can catch and handle:
import { ValidationError, SchemaError } from "mod-engine";
try {
const result = engine.evaluate(item);
} catch (error) {
if (error instanceof ValidationError) {
console.error("Validation failed:", error.message);
} else if (error instanceof SchemaError) {
console.error("Schema error:", error.message);
}
}
Next Steps
- Browse detailed API documentation for each function
- See practical examples of API usage
- Learn about concepts and patterns