| 1 | 2 types of names: | 1 | 2 types of names: | 
                
                    | 2 | \n | 2 | \n | 
                
                    | 3 | 1) "internal" name - unique string ID of a unit. | 3 | 1) "internal" name - unique string ID of a unit. | 
                
                    | 4 | Ex: factoryspider, striderhub, cloakheavyraid. | 4 | Ex: factoryspider, striderhub, cloakheavyraid. | 
                
                    | 5 | \n | 5 | \n | 
                
                    | 6 | 2) "human-readable" name - in-game unit title, no unique restriction. | 6 | 2) "human-readable" name - in-game unit title, no unique restriction. | 
                
                    | 7 | Ex: Spider Factory, Strider Hub, Scythe. | 7 | Ex: Spider Factory, Strider Hub, Scythe. | 
                
                    | 8 | \n | 8 | \n | 
                
                    | 9 | AI (Circuit) - doesn't care about human-readable strings, it checks and marks units in own memory pool as non-available only by internal name. | 9 | AI (Circuit) - doesn't care about human-readable strings, it checks and marks units in own memory pool as non-available only by internal name. | 
                
                    | 10 | Game (Zero-K) - knows and cares about both human-readable and internal names. It checks and marks units in own memory pool as non-available by internal name and human-readable. | 10 | Game (Zero-K) - knows and cares about both human-readable and internal names. It checks and marks units in own memory pool as non-available by internal name and human-readable. | 
                
                    | 11 | \n | 11 | \n | 
                
                    | 12 | CircuitAI works like a player - sends build,move,attack commands to the game. If ZK-game gets a request to build unit marked in own lua memory as non-available - it rejects the request and does not execute build command. | 12 | CircuitAI works like a player - sends build,move,attack commands to the game. If ZK-game gets a request to build unit marked in own lua memory as non-available - it rejects the request and does not execute build command. | 
                
                    | 13 | \n | 13 | \n | 
                
                    | 14 | a)
             
            If 
            units 
            are 
            forbidden 
            by 
            internal 
            name 
            -> 
            AI 
            knows 
            that 
            factory 
            is 
            unavailable 
            and 
            sends 
            build 
            command 
            only 
            for 
            those 
            that 
            are 
            available 
            -> 
            ZK 
            checks 
            build-request 
            and 
            allows 
            build 
            command 
            with 
            available 
            unit. | 14 | a)
             
            If 
            units 
            are 
            forbidden 
            by 
            internal 
            name 
            -> 
            AI 
            knows 
            that 
            unit 
            is 
            unavailable 
            and 
            sends 
            build 
            command 
            only 
            for 
            those 
            that 
            are 
            available 
            -> 
            ZK 
            checks 
            build-request 
            and 
            allows 
            build 
            command 
            with 
            available 
            unit. | 
                
                    | 15 |  | 15 |  | 
                
                    | 16 | b)
             
            If 
            units 
            are 
            forbidden 
            by 
            human-readable 
            name 
            -> 
            AI 
            tries 
            to 
            build 
            it 
            (
            the 
            choice 
            of 
            units 
            marked 
            as 
            available 
            inside 
            AI 
            has 
            a 
            bit 
            of 
            randomness)
             
            -> 
            ZK 
            rejects 
            build-request 
            with 
            forbidden 
            name 
            -> 
            AI 
            unit 
            stands 
            idle. | 16 | b)
             
            If 
            units 
            are 
            forbidden 
            by 
            human-readable 
            name 
            -> 
            AI 
            tries 
            to 
            build 
            it 
            (
            the 
            choice 
            of 
            units 
            marked 
            as 
            available 
            inside 
            AI 
            has 
            a 
            bit 
            of 
            randomness)
             
            -> 
            ZK 
            rejects 
            build-request 
            with 
            forbidden 
            name 
            -> 
            AI 
            builder 
            stands 
            idle. | 
                
                    | 17 | \n | 17 | \n | 
                
                    | 18 | I still don't want to add filter based on human-readable names inside AI, because of how i think it should be: [url=http://zero-k.info/Forum/Post/183475#183475]in-lobby proper validation requires graphical representation of build-options[/url] | 18 | I still don't want to add filter based on human-readable names inside AI, because of how i think it should be: [url=http://zero-k.info/Forum/Post/183475#183475]in-lobby proper validation requires graphical representation of build-options[/url] | 
                
                    | 19 | \n | 19 | \n | 
                
                    | 20 | [q]The following also WORKS (uses in game names): | 20 | [q]The following also WORKS (uses in game names): | 
                
                    | 21 | \n | 21 | \n | 
                
                    | 22 | Missile Silo+Antinuke+Big Bertha+Trinity+Zenith+Disco Rave Party+Starlight[/q] | 22 | Missile Silo+Antinuke+Big Bertha+Trinity+Zenith+Disco Rave Party+Starlight[/q] | 
                
                    | 23 | Nope, it only looks like it works because AI sends command to build those super units only in super late game. But AI will send build-commands and ZK will reject build-requests. | 23 | Nope, it only looks like it works because AI sends command to build those super units only in super late game. But AI will send build-commands and ZK will reject build-requests. |