Changes: 1. For both dimToLvl and lvlToDim, always returns the actual map instead of AffineMap() for identity map. 2. Updated custom builder for encoding to have default values. 3. Non-inferable lvlToDim will still return AffineMap() during inference, so it will be caught by verifier.