Half block/ block area usage
Blocks use a block of space when placed. When you plane a block or something else like a light you can place anything else in that area. Let's say you place a half block down, you can place another half block in the same square. Same with lights. Let's say you place a light down and you want to place a sensor on the block across from the light, you would have to make a 2 block area in order to place that sensor.
The same goes with the half blocks. If I want to place a light on that half block it is floating in the air. I think that we need to make every block only take up the space of its shape, or the blocks like half blocks and other small blocks that can share a space with another small block.
Another thing is, we need to make Half blocks stackable . Let's say you put a half block down and you put another o top or it. Right now that other half block would be floating, but what we can do is make that other half block that you put down connect with that other block and make a full block. I know, that people will say just put a full block down, but what I'm trying to get across is that not all blocks need to take up a full block of space.
So, overall what we need is for blocks that do not take up a full square of space to not take that space up. So you were able to place lights on half blocks and lights on slanted blocks and so on.