First Cut at a Decko Engine

For discussion.
This is probably not quite right, maybe we need both, maybe it will depend on how we are using it.